package com.seata.demo.account.mapper;

import com.seata.demo.account.entity.Account;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

@Mapper
public interface AccountMapper {
    Account selectByUserId(@Param("userId") String userId);
    
    int debit(@Param("userId") String userId, @Param("money") BigDecimal money);
    
    // TCC模式方法
    int freeze(@Param("userId") String userId, @Param("money") BigDecimal money);
    
    int unfreeze(@Param("userId") String userId, @Param("money") BigDecimal money);
    
    int confirmDebit(@Param("userId") String userId, @Param("money") BigDecimal money);
}
